1. AAC audio file format

    Advanced Audio Coding format, designed to be the successor format to MP3, with generally better sound quality.

  2. Printing Events

    Window fires `beforeprint` and `afterprint` events so the printed document can be annotated.

  3. Case-insensitive CSS attribute selectors

    Including an `i` before the `]` in a CSS attribute selector causes the attribute value to be matched in an ASCII-case-insensitive manner. For example, `[b="xyz" i]` would match both `<a b="xyz">` and `<a b="XYZ">`.

  4. CSS hanging-punctuation

    Allows some punctuation characters from start (or the end) of text elements to be placed "outside" of the box in order to preserve the reading flow.

  5. gap property for Flexbox

    `gap` for flexbox containers to create gaps/gutters between flex items

  6. system-ui value for font-family

    Value for `font-family` that represents the default user interface font.

  7. Form attribute

    Attribute for associating input and submit buttons with a form.

  8. Form validation

    Method of setting required fields and field types without requiring JavaScript. This includes preventing forms from being submitted when appropriate, the `checkValidity()` method as well as support for the `:invalid`, `:valid`, and `:required` CSS pseudo-classes.

  9. HEIF/HEIC image format

    A modern image format based on the [HEVC video format](/hevc). HEIC generally has better compression than [WebP](/webp), JPEG, PNG and GIF. It is hard for browsers to support HEIC because it is [complex and expensive to license](https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#Patent_licensing). [AVIF](/avif) and [JPEG XL](/jpegxl) provide free licenses and are designed to supersede HEIC.

  10. HEVC/H.265 video format

    The High Efficiency Video Coding (HEVC) compression standard is a video compression format intended to succeed H.264. It is hard for browsers to universally support HEVC because it is [complex and expensive to license](https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#Patent_licensing). HEVC competes with [AV1](/av1) which has similar compression quality and provides a free license.

  11. Color input type

    Form field allowing the user to select a color.

  12. Date and time input types

    Form field widgets to easily allow users to enter a date, time or both, generally by using a calendar/time input widget. Refers to supporting the following input types: `date`, `time`, `datetime-local`, `month` & `week`.

  13. Email, telephone & URL input types

    Text input fields intended for email addresses, telephone numbers or URLs. Particularly useful in combination with [form validation](https://caniuse.com/#feat=form-validation)

  14. input event

    The `input` event is fired when the user changes the value of an `<input>` element, `<select>` element, or `<textarea>` element. By contrast, the "change" event usually only fires after the form control has lost focus.

  15. accept attribute for file input

    Allows a filter to be defined for what type of files a user may pick with from an `<input type="file">` dialog

  16. inputmode attribute

    The `inputmode` attribute specifies what kind of input mechanism would be most helpful for users entering content into the form control.

  17. Minimum length attribute for input fields

    Declares a lower bound on the number of characters a user can input.

  18. Number input type

    Form field type for numbers.

  19. Pattern attribute for input fields

    Allows validation of an input field based on a given regular expression pattern.

  20. input placeholder attribute

    Method of setting placeholder text for text-like input fields, to suggest the expected inserted information.

  21. Range input type

    Form field type that allows the user to select a value using a slider widget.

  22. Search input type

    Search field form input type. Intended to look like the underlying platform's native search field widget (if there is one). Other than its appearance, it's the same as an `<input type="text">`.

  23. Selection controls for input & textarea

    Controls for setting and getting text selection via `setSelectionRange()` and the `selectionStart` & `selectionEnd` properties.

  24. Element.insertAdjacentElement() & Element.insertAdjacentText()

    Methods for inserting an element or text before or after a given element, or appending or prepending an element or text to a given element's list of children.

  25. Internationalization API

    Locale-sensitive collation (string comparison), number formatting, and date and time formatting.

  26. IntersectionObserver

    API that can be used to understand the visibility and position of DOM elements relative to a containing element or to the top-level viewport. The position is delivered asynchronously and is useful for understanding the visibility of elements and implementing pre-loading and deferred loading of DOM content.

  27. IntersectionObserver V2

    Iteration on the original API that also reports if the element is covered by another element or has filters applied to it. Useful for blocking clickjacking attempts or tracking ad exposure.

  28. Intl.PluralRules API

    API for plural sensitive formatting and plural language rules.

  29. JPEG 2000 image format

    JPEG 2000 was built to supersede the original JPEG format by having better compression and more features. [WebP](/webp), [AVIF](/avif) and [JPEG XL](/jpegxl) are all designed to supersede JPEG 2000.

  30. JPEG XR image format

    JPEG XR was built to supersede the original JPEG format by having better compression and more features. [WebP](/webp), [AVIF](/avif) and [JPEG XL](/jpegxl) are all designed to supersede JPEG XR.

  31. Lazy loading via attribute for images & iframes

    The `loading` attribute on images & iframes gives authors control over when the browser should start loading the resource.

  32. maxlength attribute for input and textarea elements

    Declares an upper bound on the number of characters the user can input. Normally the UI ignores attempts by the user to type in additional characters beyond this limit.

  33. Network Information API

    The Network Information API enables web applications to access information about the network connection in use by the device. Accessed via `navigator.connection`

  34. Ogg Vorbis audio format

    Vorbis is a free and open source audio format, most commonly used with the Ogg container.

  35. Opus audio format

    Royalty-free open audio codec by IETF, which incorporated SILK from Skype and CELT from Xiph.org, to serve higher sound quality and lower latency at the same bitrate.

  36. Pointer events

    This specification integrates various inputs from mice, touchscreens, and pens, making separate implementations no longer necessary and authoring for cross-device pointers easier. Not to be mistaken with the unrelated "pointer-events" CSS property.

  37. CSS pointer-events (for HTML)

    This CSS property, when set to "none" allows elements to not receive hover/click events, instead the event will occur on anything behind it.

  38. Pointer Lock API

    API that provides access to raw mouse movement data. This is done by ignoring boundaries resulting from screen edges where the cursor can't go beyond, providing proper control for first person or real time strategy games.

  39. readonly attribute of input and textarea elements

    Makes the form control non-editable. Unlike the `disabled` attribute, `readonly` form controls are still included in form submissions and the user can still select (but not edit) their value text.

  40. Trusted Types for DOM manipulation

    An API that forces developers to be very explicit about their use of powerful DOM-injection APIs. Can greatly improve security against XSS attacks.

  41. formdata api: available in workers

  42. html element: input: form

  43. html element: input: formaction

  44. html element: input: formenctype

  45. html element: input: formmethod

  46. html element: input: formnovalidate

  47. html element: input: formtarget

  48. javascript statement: `for...in`

  49. javascript statement: `for...of`: closing iterators

  50. ecmascript 2019 (es10)